package com.woniu.project.client;

import com.woniu.project.core.dto.ResultDto;
import com.woniu.project.params.SelectParam;
import com.woniu.project.params.StoreParams;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * @Author: Klaus
 * @Date: 2020/9/28 19:05
 */
@FeignClient("store-service")
public interface StoreClient {

    /**
     * 分页查询所有的仓库
     * page:页数 默认值 1
     * size:每页条数 默认值 10
     * @return
     */
    @GetMapping("/pawn/store/selectAllStore")
    ResultDto selectAllStore(@RequestBody SelectParam selectParam);

    /**
     * 按条件查询仓库(分页)
     * page:页数 默认值 1
     * size:每页条数 默认值 10
     * StoreParams:仓库名称或联系人名称或联系人手机号
     * StoreStatus:仓库状态 使用/停用
     * @param selectParam
     * @return
     */
    @GetMapping("/pawn/store/selectStoreByCondition")
    ResultDto selectStoreByCondition(@RequestBody SelectParam selectParam);

    /**
     * 根据ID查询仓库
     * @param storeId
     * @return
     */
    @GetMapping("/pawn/store/selectStoreById")
    ResultDto selectStoreById(@PathVariable String storeId);

    /**
     * 新增门店信息
     * 必填参数：
     * StoreName：仓库名称
     * managementid ：仓库管理员的ID
     * StoreStatus ：仓库状态
     * StoreAddr：仓库地址
     *
     * @return
     */
    @PostMapping("/pawn/store/insertStore")
    ResultDto insertStore(@RequestBody StoreParams storeParams);

    /**
     * 修改仓库信息
     * 必填参数：
     * storeId:仓库编号
     * StoreName：仓库名称
     * managementid ：仓库管理员的ID
     * StoreStatus ：仓库状态
     * StoreAddr：仓库地址
     * @param storeParams
     * @return
     */
    @PostMapping("/pawn/store/updateStoreById")
    ResultDto updateStoreById(@RequestBody StoreParams storeParams);

    /**
     * 按仓库ID删除仓库
     * @param storeId
     * @return
     */
    @PostMapping("deleteStoreById")
    ResultDto deleteStoreById(@PathVariable String storeId);
}
